package com.joyzl.network.tls;

/**
 * 密码套件
 * 
 * @author ZhangXi 2024年12月17日
 */
public enum CipherSuiteType {
	// TLS_KeyExchange_Signature_WITH_Cipher_Hash
	// CBC:cipher block chaining
	// DES:Data Encryption Standard
	// DSS:Digital Signature Standard
	// IV:Initialization Vector
	// AES:Advanced Encryption Standard

	TLS_NULL_WITH_NULL_NULL(CipherSuite.TLS_NULL_WITH_NULL_NULL, null, false, null, null, null, null, 0, 0, 0, 0, 0),

	// @formatter:off
	TLS_RSA_WITH_NULL_MD5(CipherSuite.TLS_RSA_WITH_NULL_MD5,KeyExchange.RSA,false,null,null,"MD5","HmacMD5",16,0,0,0,0),
	TLS_RSA_WITH_NULL_SHA(CipherSuite.TLS_RSA_WITH_NULL_SHA,KeyExchange.RSA,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_RSA_EXPORT_WITH_RC4_40_MD5(CipherSuite.TLS_RSA_EXPORT_WITH_RC4_40_MD5,KeyExchange.RSA,true,"RC4","RC4","MD5","HmacMD5",16,0,0,5,0),
	TLS_RSA_WITH_RC4_128_MD5(CipherSuite.TLS_RSA_WITH_RC4_128_MD5,KeyExchange.RSA,false,"RC4","RC4","MD5","HmacMD5",16,0,0,16,0),
	TLS_RSA_WITH_RC4_128_SHA(CipherSuite.TLS_RSA_WITH_RC4_128_SHA,KeyExchange.RSA,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5(CipherSuite.TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,KeyExchange.RSA,true,"RC2","RC2/CBC/NoPadding","MD5","HmacMD5",16,8,0,5,8),
	TLS_RSA_WITH_IDEA_CBC_SHA(CipherSuite.TLS_RSA_WITH_IDEA_CBC_SHA,KeyExchange.RSA,false,"IDEA","IDEA/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,16,8),
	TLS_RSA_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.RSA,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_RSA_WITH_DES_CBC_SHA(CipherSuite.TLS_RSA_WITH_DES_CBC_SHA,KeyExchange.RSA,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.DH_DSS,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_DH_DSS_WITH_DES_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_DES_CBC_SHA,KeyExchange.DH_DSS,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,KeyExchange.DH_DSS,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.DH_RSA,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_DH_RSA_WITH_DES_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_DES_CBC_SHA,KeyExchange.DH_RSA,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.DH_RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.DHE_DSS,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_DHE_DSS_WITH_DES_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_DES_CBC_SHA,KeyExchange.DHE_DSS,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,KeyExchange.DHE_DSS,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.DHE_RSA,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_DHE_RSA_WITH_DES_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_DES_CBC_SHA,KeyExchange.DHE_RSA,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.DHE_RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5(CipherSuite.TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5,KeyExchange.DH_ANON,true,"RC4","RC4","MD5","HmacMD5",16,0,0,5,0),
	TLS_DH_ANON_WITH_RC4_128_MD5(CipherSuite.TLS_DH_ANON_WITH_RC4_128_MD5,KeyExchange.DH_ANON,false,"RC4","RC4","MD5","HmacMD5",16,0,0,16,0),
	TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA(CipherSuite.TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA,KeyExchange.DH_ANON,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_DH_ANON_WITH_DES_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_DES_CBC_SHA,KeyExchange.DH_ANON,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA,KeyExchange.DH_ANON,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_KRB5_WITH_DES_CBC_SHA(CipherSuite.TLS_KRB5_WITH_DES_CBC_SHA,KeyExchange.KRB5,false,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,8,8),
	TLS_KRB5_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_SHA,KeyExchange.KRB5,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_KRB5_WITH_RC4_128_SHA(CipherSuite.TLS_KRB5_WITH_RC4_128_SHA,KeyExchange.KRB5,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_KRB5_WITH_IDEA_CBC_SHA(CipherSuite.TLS_KRB5_WITH_IDEA_CBC_SHA,KeyExchange.KRB5,false,"IDEA","IDEA/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,16,8),
	TLS_KRB5_WITH_DES_CBC_MD5(CipherSuite.TLS_KRB5_WITH_DES_CBC_MD5,KeyExchange.KRB5,false,"DES","DES/CBC/NoPadding","MD5","HmacMD5",16,8,0,8,8),
	TLS_KRB5_WITH_3DES_EDE_CBC_MD5(CipherSuite.TLS_KRB5_WITH_3DES_EDE_CBC_MD5,KeyExchange.KRB5,false,"DESede","DESede/CBC/NoPadding","MD5","HmacMD5",16,8,0,24,8),
	TLS_KRB5_WITH_RC4_128_MD5(CipherSuite.TLS_KRB5_WITH_RC4_128_MD5,KeyExchange.KRB5,false,"RC4","RC4","MD5","HmacMD5",16,0,0,16,0),
	TLS_KRB5_WITH_IDEA_CBC_MD5(CipherSuite.TLS_KRB5_WITH_IDEA_CBC_MD5,KeyExchange.KRB5,false,"IDEA","IDEA/CBC/NoPadding","MD5","HmacMD5",16,8,0,16,8),
	TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA(CipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,KeyExchange.KRB5,true,"DES","DES/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA(CipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,KeyExchange.KRB5,true,"RC2","RC2/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,5,8),
	TLS_KRB5_EXPORT_WITH_RC4_40_SHA(CipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_SHA,KeyExchange.KRB5,true,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,5,0),
	TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5(CipherSuite.TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,KeyExchange.KRB5,true,"DES","DES/CBC/NoPadding","MD5","HmacMD5",16,8,0,5,8),
	TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5(CipherSuite.TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,KeyExchange.KRB5,true,"RC2","RC2/CBC/NoPadding","MD5","HmacMD5",16,8,0,5,8),
	TLS_KRB5_EXPORT_WITH_RC4_40_MD5(CipherSuite.TLS_KRB5_EXPORT_WITH_RC4_40_MD5,KeyExchange.KRB5,true,"RC4","RC4","MD5","HmacMD5",16,0,0,5,0),
	TLS_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,KeyExchange.RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_DSS_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA,KeyExchange.DH_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA,KeyExchange.DH_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_DSS_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA,KeyExchange.DHE_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA,KeyExchange.DHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_ANON_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_AES_128_CBC_SHA,KeyExchange.DH_ANON,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA,KeyExchange.RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_DSS_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA,KeyExchange.DH_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA,KeyExchange.DH_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DHE_DSS_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA,KeyExchange.DHE_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DHE_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA,KeyExchange.DHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_ANON_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_AES_256_CBC_SHA,KeyExchange.DH_ANON,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_RSA_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.DH_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.DH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.DHE_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.DHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA,KeyExchange.DH_ANON,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_RSA_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.DH_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.DH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.DHE_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.DHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA,KeyExchange.DH_ANON,false,"Camellia","Camellia/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DH_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DHE_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DH_ANON,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.DH_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.DH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.DHE_DSS,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.DHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256,KeyExchange.DH_ANON,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_RSA_WITH_SEED_CBC_SHA(CipherSuite.TLS_RSA_WITH_SEED_CBC_SHA,KeyExchange.RSA,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_DSS_WITH_SEED_CBC_SHA(CipherSuite.TLS_DH_DSS_WITH_SEED_CBC_SHA,KeyExchange.DH_DSS,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_RSA_WITH_SEED_CBC_SHA(CipherSuite.TLS_DH_RSA_WITH_SEED_CBC_SHA,KeyExchange.DH_RSA,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_DSS_WITH_SEED_CBC_SHA(CipherSuite.TLS_DHE_DSS_WITH_SEED_CBC_SHA,KeyExchange.DHE_DSS,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_RSA_WITH_SEED_CBC_SHA(CipherSuite.TLS_DHE_RSA_WITH_SEED_CBC_SHA,KeyExchange.DHE_RSA,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DH_ANON_WITH_SEED_CBC_SHA(CipherSuite.TLS_DH_ANON_WITH_SEED_CBC_SHA,KeyExchange.DH_ANON,false,"SEED","SEED/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_PSK_WITH_RC4_128_SHA(CipherSuite.TLS_PSK_WITH_RC4_128_SHA,KeyExchange.PSK,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_PSK_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_PSK_WITH_3DES_EDE_CBC_SHA,KeyExchange.PSK,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_PSK_WITH_AES_128_CBC_SHA(CipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA,KeyExchange.PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_PSK_WITH_AES_256_CBC_SHA(CipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA,KeyExchange.PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_DHE_PSK_WITH_RC4_128_SHA(CipherSuite.TLS_DHE_PSK_WITH_RC4_128_SHA,KeyExchange.DHE_PSK,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,KeyExchange.DHE_PSK,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_DHE_PSK_WITH_AES_128_CBC_SHA(CipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA,KeyExchange.DHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_DHE_PSK_WITH_AES_256_CBC_SHA(CipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA,KeyExchange.DHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_RSA_PSK_WITH_RC4_128_SHA(CipherSuite.TLS_RSA_PSK_WITH_RC4_128_SHA,KeyExchange.RSA_PSK,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,KeyExchange.RSA_PSK,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_RSA_PSK_WITH_AES_128_CBC_SHA(CipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA,KeyExchange.RSA_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_RSA_PSK_WITH_AES_256_CBC_SHA(CipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA,KeyExchange.RSA_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDH_ECDSA_WITH_NULL_SHA(CipherSuite.TLS_ECDH_ECDSA_WITH_NULL_SHA,KeyExchange.ECDH_ECDSA,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDH_ECDSA_WITH_RC4_128_SHA(CipherSuite.TLS_ECDH_ECDSA_WITH_RC4_128_SHA,KeyExchange.ECDH_ECDSA,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDH_ECDSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,KeyExchange.ECDH_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,KeyExchange.ECDH_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDHE_ECDSA_WITH_NULL_SHA(CipherSuite.TLS_ECDHE_ECDSA_WITH_NULL_SHA,KeyExchange.ECDHE_ECDSA,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDHE_ECDSA_WITH_RC4_128_SHA(CipherSuite.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,KeyExchange.ECDHE_ECDSA,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDHE_ECDSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDH_RSA_WITH_NULL_SHA(CipherSuite.TLS_ECDH_RSA_WITH_NULL_SHA,KeyExchange.ECDH_RSA,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDH_RSA_WITH_RC4_128_SHA(CipherSuite.TLS_ECDH_RSA_WITH_RC4_128_SHA,KeyExchange.ECDH_RSA,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDH_RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDH_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,KeyExchange.ECDH_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDH_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,KeyExchange.ECDH_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDHE_RSA_WITH_NULL_SHA(CipherSuite.TLS_ECDHE_RSA_WITH_NULL_SHA,KeyExchange.ECDHE_RSA,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDHE_RSA_WITH_RC4_128_SHA(CipherSuite.TLS_ECDHE_RSA_WITH_RC4_128_SHA,KeyExchange.ECDHE_RSA,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDHE_RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,KeyExchange.ECDHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,KeyExchange.ECDHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDH_ANON_WITH_NULL_SHA(CipherSuite.TLS_ECDH_ANON_WITH_NULL_SHA,KeyExchange.ECDH_ANON,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDH_ANON_WITH_RC4_128_SHA(CipherSuite.TLS_ECDH_ANON_WITH_RC4_128_SHA,KeyExchange.ECDH_ANON,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDH_ANON,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDH_ANON_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDH_ANON_WITH_AES_128_CBC_SHA,KeyExchange.ECDH_ANON,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDH_ANON_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDH_ANON_WITH_AES_256_CBC_SHA,KeyExchange.ECDH_ANON,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_PSK_WITH_NULL_SHA(CipherSuite.TLS_PSK_WITH_NULL_SHA,KeyExchange.PSK,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_DHE_PSK_WITH_NULL_SHA(CipherSuite.TLS_DHE_PSK_WITH_NULL_SHA,KeyExchange.DHE_PSK,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_RSA_PSK_WITH_NULL_SHA(CipherSuite.TLS_RSA_PSK_WITH_NULL_SHA,KeyExchange.RSA_PSK,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,KeyExchange.SRP_SHA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,KeyExchange.SRP_SHA_RSA,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,KeyExchange.SRP_SHA_DSS,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_SRP_SHA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_SRP_SHA_WITH_AES_128_CBC_SHA,KeyExchange.SRP_SHA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA(CipherSuite.TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,KeyExchange.SRP_SHA_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA(CipherSuite.TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,KeyExchange.SRP_SHA_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_SRP_SHA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_SRP_SHA_WITH_AES_256_CBC_SHA,KeyExchange.SRP_SHA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA(CipherSuite.TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,KeyExchange.SRP_SHA_RSA,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA(CipherSuite.TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,KeyExchange.SRP_SHA_DSS,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_RSA_WITH_NULL_SHA256(CipherSuite.TLS_RSA_WITH_NULL_SHA256,KeyExchange.RSA,false,null,null,"SHA-256","HmacSHA256",32,0,0,0,0),
	TLS_RSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA256,KeyExchange.RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA256,KeyExchange.RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_DSS_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DH_DSS_WITH_AES_128_CBC_SHA256,KeyExchange.DH_DSS,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_RSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DH_RSA_WITH_AES_128_CBC_SHA256,KeyExchange.DH_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_DSS_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,KeyExchange.DHE_DSS,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_RSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,KeyExchange.DHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_DSS_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_DH_DSS_WITH_AES_256_CBC_SHA256,KeyExchange.DH_DSS,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_RSA_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_DH_RSA_WITH_AES_256_CBC_SHA256,KeyExchange.DH_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DHE_DSS_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,KeyExchange.DHE_DSS,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DHE_RSA_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,KeyExchange.DHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_DH_ANON_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DH_ANON_WITH_AES_128_CBC_SHA256,KeyExchange.DH_ANON,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_ANON_WITH_AES_256_CBC_SHA256(CipherSuite.TLS_DH_ANON_WITH_AES_256_CBC_SHA256,KeyExchange.DH_ANON,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,32,16),
	TLS_RSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_RSA_WITH_AES_128_GCM_SHA256,KeyExchange.RSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_RSA_WITH_AES_256_GCM_SHA384,KeyExchange.RSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_RSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,KeyExchange.DHE_RSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_RSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,KeyExchange.DHE_RSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_RSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DH_RSA_WITH_AES_128_GCM_SHA256,KeyExchange.DH_RSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_RSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DH_RSA_WITH_AES_256_GCM_SHA384,KeyExchange.DH_RSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_DSS_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,KeyExchange.DHE_DSS,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_DSS_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,KeyExchange.DHE_DSS,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_DSS_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DH_DSS_WITH_AES_128_GCM_SHA256,KeyExchange.DH_DSS,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_DSS_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DH_DSS_WITH_AES_256_GCM_SHA384,KeyExchange.DH_DSS,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_ANON_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DH_ANON_WITH_AES_128_GCM_SHA256,KeyExchange.DH_ANON,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_ANON_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DH_ANON_WITH_AES_256_GCM_SHA384,KeyExchange.DH_ANON,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,KeyExchange.ECDH_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,KeyExchange.ECDH_ECDSA,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,KeyExchange.ECDHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,KeyExchange.ECDHE_RSA,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,KeyExchange.ECDH_RSA,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,KeyExchange.ECDH_RSA,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,KeyExchange.ECDHE_ECDSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,KeyExchange.ECDHE_ECDSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,KeyExchange.ECDH_ECDSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,KeyExchange.ECDH_ECDSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,KeyExchange.ECDHE_RSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,KeyExchange.ECDHE_RSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,KeyExchange.ECDH_RSA,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,KeyExchange.ECDH_RSA,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_PSK_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_PSK_WITH_AES_128_GCM_SHA256,KeyExchange.PSK,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_PSK_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_PSK_WITH_AES_256_GCM_SHA384,KeyExchange.PSK,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_PSK_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,KeyExchange.DHE_PSK,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_PSK_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,KeyExchange.DHE_PSK,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_RSA_PSK_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,KeyExchange.RSA_PSK,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_PSK_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,KeyExchange.RSA_PSK,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_PSK_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_PSK_WITH_AES_128_CBC_SHA256,KeyExchange.PSK,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_PSK_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_PSK_WITH_AES_256_CBC_SHA384,KeyExchange.PSK,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_PSK_WITH_NULL_SHA256(CipherSuite.TLS_PSK_WITH_NULL_SHA256,KeyExchange.PSK,false,null,null,"SHA-256","HmacSHA256",32,0,0,0,0),
	TLS_PSK_WITH_NULL_SHA384(CipherSuite.TLS_PSK_WITH_NULL_SHA384,KeyExchange.PSK,false,null,null,"SHA-384","HmacSHA384",48,0,0,0,0),
	TLS_DHE_PSK_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,KeyExchange.DHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_PSK_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,KeyExchange.DHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DHE_PSK_WITH_NULL_SHA256(CipherSuite.TLS_DHE_PSK_WITH_NULL_SHA256,KeyExchange.DHE_PSK,false,null,null,"SHA-256","HmacSHA256",32,0,0,0,0),
	TLS_DHE_PSK_WITH_NULL_SHA384(CipherSuite.TLS_DHE_PSK_WITH_NULL_SHA384,KeyExchange.DHE_PSK,false,null,null,"SHA-384","HmacSHA384",48,0,0,0,0),
	TLS_RSA_PSK_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,KeyExchange.RSA_PSK,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_PSK_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,KeyExchange.RSA_PSK,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_PSK_WITH_NULL_SHA256(CipherSuite.TLS_RSA_PSK_WITH_NULL_SHA256,KeyExchange.RSA_PSK,false,null,null,"SHA-256","HmacSHA256",32,0,0,0,0),
	TLS_RSA_PSK_WITH_NULL_SHA384(CipherSuite.TLS_RSA_PSK_WITH_NULL_SHA384,KeyExchange.RSA_PSK,false,null,null,"SHA-384","HmacSHA384",48,0,0,0,0),
	TLS_ECDHE_PSK_WITH_RC4_128_SHA(CipherSuite.TLS_ECDHE_PSK_WITH_RC4_128_SHA,KeyExchange.ECDHE_PSK,false,"RC4","RC4","SHA-1","HmacSHA1",20,0,0,16,0),
	TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA(CipherSuite.TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,KeyExchange.ECDHE_PSK,false,"DESede","DESede/CBC/NoPadding","SHA-1","HmacSHA1",20,8,0,24,8),
	TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA(CipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,KeyExchange.ECDHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,16,16),
	TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA(CipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,KeyExchange.ECDHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-1","HmacSHA1",20,16,0,32,16),
	TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,KeyExchange.ECDHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384(CipherSuite.TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,KeyExchange.ECDHE_PSK,false,"AES","AES/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_PSK_WITH_NULL_SHA(CipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA,KeyExchange.ECDHE_PSK,false,null,null,"SHA-1","HmacSHA1",20,0,0,0,0),
	TLS_ECDHE_PSK_WITH_NULL_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA256,KeyExchange.ECDHE_PSK,false,null,null,"SHA-256","HmacSHA256",32,0,0,0,0),
	TLS_ECDHE_PSK_WITH_NULL_SHA384(CipherSuite.TLS_ECDHE_PSK_WITH_NULL_SHA384,KeyExchange.ECDHE_PSK,false,null,null,"SHA-384","HmacSHA384",48,0,0,0,0),
	//TLS_EMPTY_RENEGOTIATION_INFO_SCSV(CipherSuite.TLS_EMPTY_RENEGOTIATION_INFO_SCSV,null,false,0,0,0,0,0,0,0,0,0),
	TLS_RSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_RSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_RSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,KeyExchange.DH_DSS,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,KeyExchange.DH_DSS,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.DH_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.DH_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,KeyExchange.DHE_DSS,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,KeyExchange.DHE_DSS,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.DHE_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.DHE_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256,KeyExchange.DH_ANON,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384,KeyExchange.DH_ANON,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.ECDHE_ECDSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.ECDHE_ECDSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.ECDH_ECDSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.ECDH_ECDSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.ECDHE_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.ECDHE_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,KeyExchange.ECDH_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,KeyExchange.ECDH_RSA,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_RSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_RSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.DHE_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.DHE_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.DH_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.DH_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256,KeyExchange.DHE_DSS,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384,KeyExchange.DHE_DSS,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,KeyExchange.DH_DSS,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,KeyExchange.DH_DSS,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256,KeyExchange.DH_ANON,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384,KeyExchange.DH_ANON,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.ECDHE_ECDSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.ECDHE_ECDSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.ECDH_ECDSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.ECDH_ECDSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.ECDHE_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.ECDHE_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,KeyExchange.ECDH_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,KeyExchange.ECDH_RSA,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_PSK_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_PSK_WITH_ARIA_128_CBC_SHA256,KeyExchange.PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_PSK_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_PSK_WITH_ARIA_256_CBC_SHA384,KeyExchange.PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,KeyExchange.DHE_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,KeyExchange.DHE_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,KeyExchange.RSA_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,KeyExchange.RSA_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_PSK_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_PSK_WITH_ARIA_128_GCM_SHA256,KeyExchange.PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_PSK_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_PSK_WITH_ARIA_256_GCM_SHA384,KeyExchange.PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,KeyExchange.DHE_PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,KeyExchange.DHE_PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256(CipherSuite.TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,KeyExchange.RSA_PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384(CipherSuite.TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,KeyExchange.RSA_PSK,false,"ARIA","ARIA/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,KeyExchange.ECDHE_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,KeyExchange.ECDHE_PSK,false,"ARIA","ARIA/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.ECDHE_ECDSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.ECDHE_ECDSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.ECDH_ECDSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.ECDH_ECDSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.ECDHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.ECDHE_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.ECDH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.ECDH_RSA,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DHE_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DHE_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DH_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DH_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DHE_DSS,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DHE_DSS,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DH_DSS,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DH_DSS,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DH_ANON,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DH_ANON,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.ECDHE_ECDSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.ECDHE_ECDSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.ECDH_ECDSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.ECDH_ECDSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.ECDHE_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.ECDHE_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.ECDH_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.ECDH_RSA,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.DHE_PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.DHE_PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256(CipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,KeyExchange.RSA_PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384(CipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,KeyExchange.RSA_PSK,false,"Camellia","Camellia/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.DHE_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.DHE_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.RSA_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.RSA_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,KeyExchange.ECDHE_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-256","HmacSHA256",32,16,0,16,16),
	TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384(CipherSuite.TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,KeyExchange.ECDHE_PSK,false,"Camellia","Camellia/CBC/NoPadding","SHA-384","HmacSHA384",48,16,0,32,16),
	TLS_RSA_WITH_AES_128_CCM(CipherSuite.TLS_RSA_WITH_AES_128_CCM,KeyExchange.RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,16,12),
	TLS_RSA_WITH_AES_256_CCM(CipherSuite.TLS_RSA_WITH_AES_256_CCM,KeyExchange.RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,32,12),
	TLS_DHE_RSA_WITH_AES_128_CCM(CipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM,KeyExchange.DHE_RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,16,12),
	TLS_DHE_RSA_WITH_AES_256_CCM(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM,KeyExchange.DHE_RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,32,12),
	TLS_RSA_WITH_AES_128_CCM_8(CipherSuite.TLS_RSA_WITH_AES_128_CCM_8,KeyExchange.RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,16,12),
	TLS_RSA_WITH_AES_256_CCM_8(CipherSuite.TLS_RSA_WITH_AES_256_CCM_8,KeyExchange.RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,32,12),
	TLS_DHE_RSA_WITH_AES_128_CCM_8(CipherSuite.TLS_DHE_RSA_WITH_AES_128_CCM_8,KeyExchange.DHE_RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,16,12),
	TLS_DHE_RSA_WITH_AES_256_CCM_8(CipherSuite.TLS_DHE_RSA_WITH_AES_256_CCM_8,KeyExchange.DHE_RSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,32,12),
	TLS_PSK_WITH_AES_128_CCM(CipherSuite.TLS_PSK_WITH_AES_128_CCM,KeyExchange.PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,16,12),
	TLS_PSK_WITH_AES_256_CCM(CipherSuite.TLS_PSK_WITH_AES_256_CCM,KeyExchange.PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,32,12),
	TLS_DHE_PSK_WITH_AES_128_CCM(CipherSuite.TLS_DHE_PSK_WITH_AES_128_CCM,KeyExchange.DHE_PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,16,12),
	TLS_DHE_PSK_WITH_AES_256_CCM(CipherSuite.TLS_DHE_PSK_WITH_AES_256_CCM,KeyExchange.DHE_PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,32,12),
	TLS_PSK_WITH_AES_128_CCM_8(CipherSuite.TLS_PSK_WITH_AES_128_CCM_8,KeyExchange.PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,16,12),
	TLS_PSK_WITH_AES_256_CCM_8(CipherSuite.TLS_PSK_WITH_AES_256_CCM_8,KeyExchange.PSK,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,32,12),
	TLS_PSK_DHE_WITH_AES_128_CCM_8(CipherSuite.TLS_PSK_DHE_WITH_AES_128_CCM_8,KeyExchange.PSK_DHE,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,16,12),
	TLS_PSK_DHE_WITH_AES_256_CCM_8(CipherSuite.TLS_PSK_DHE_WITH_AES_256_CCM_8,KeyExchange.PSK_DHE,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,32,12),
	TLS_ECDHE_ECDSA_WITH_AES_128_CCM(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,16,12),
	TLS_ECDHE_ECDSA_WITH_AES_256_CCM(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,16,32,12),
	TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,16,12),
	TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,KeyExchange.ECDHE_ECDSA,false,"AES","AES/CCM/NoPadding",null,null,0,0,8,32,12),
	//TLS_FALLBACK_SCSV(CipherSuite.TLS_FALLBACK_SCSV,null,false,0,0,0,0,0,0,0,0,0),
	TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.ECDHE_RSA,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.ECDHE_ECDSA,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.DHE_RSA,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_PSK_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.PSK,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.ECDHE_PSK,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.DHE_PSK,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,KeyExchange.RSA_PSK,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,KeyExchange.ECDHE_PSK,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384(CipherSuite.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,KeyExchange.ECDHE_PSK,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256,KeyExchange.ECDHE_PSK,false,"AES","AES/CCM/NoPadding","SHA-256","HmacSHA256",32,0,8,16,12),
	TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256(CipherSuite.TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,KeyExchange.ECDHE_PSK,false,"AES","AES/CCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_AES_128_GCM_SHA256(CipherSuite.TLS_AES_128_GCM_SHA256,null,false,"AES","AES/GCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_AES_256_GCM_SHA384(CipherSuite.TLS_AES_256_GCM_SHA384,null,false,"AES","AES/GCM/NoPadding","SHA-384","HmacSHA384",48,0,16,32,12),
	TLS_CHACHA20_POLY1305_SHA256(CipherSuite.TLS_CHACHA20_POLY1305_SHA256,null,false,"ChaCha20-Poly1305","ChaCha20-Poly1305","SHA-256","HmacSHA256",32,0,16,32,12),
	TLS_AES_128_CCM_SHA256(CipherSuite.TLS_AES_128_CCM_SHA256,null,false,"AES","AES/CCM/NoPadding","SHA-256","HmacSHA256",32,0,16,16,12),
	TLS_AES_128_CCM_8_SHA256(CipherSuite.TLS_AES_128_CCM_8_SHA256,null,false,"AES","AES/CCM/NoPadding","SHA-256","HmacSHA256",32,0,8,16,12),
	TLS_SM4_GCM_SM3(CipherSuite.TLS_SM4_GCM_SM3,null,false,"SM4","SM4/GCM/NoPadding","SM3","HmacSM3",32,0,16,16,12),
	TLS_SM4_CCM_SM3(CipherSuite.TLS_SM4_CCM_SM3,null,false,"SM4","SM4/CCM/NoPadding","SM3","HmacSM3",32,0,16,16,12),
	TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC(CipherSuite.TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC,null,false,"Kuznyechik","Kuznyechik/CTR/NoPadding","GOST256","GOST256",32,0,16,32,16),
	TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC(CipherSuite.TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC,null,false,"Magma","Magma/CTR/NoPadding","GOST256","GOST256",32,0,8,32,8),
	TLS_GOSTR341112_256_WITH_28147_CNT_IMIT(CipherSuite.TLS_GOSTR341112_256_WITH_28147_CNT_IMIT,null,false,"GOST28147","GOST28147/CNT/NoPadding","GOST256","GOST256",32,0,8,32,8),
	//@formatter:on
	;
	////////////////////////////////////////////////////////////////////////////////

	public static CipherSuiteType valueOf(short code) {
		for (int i = 0; i < CipherSuiteType.values().length; i++) {
			if (code == CipherSuiteType.values()[i].code()) {
				return CipherSuiteType.values()[i];
			}
		}
		return null;
	}

	////////////////////////////////////////////////////////////////////////////////

	private short code;

	private final KeyExchange keyExchangeAlgorithm;
	private boolean exportable;

	private final String keyAlgorithm;
	private final String cipherAlgorithm;
	private final String digestAlgorithm;
	private final String macAlgorithm;

	private final int hash;
	private final int block;
	private final int tag;
	private final int key;
	private final int iv;

	private CipherSuiteType(short code,
			// 密钥交换算法，和证书签名算法
			KeyExchange keyExchangeAlgorithm, boolean exportable,
			// 密钥算法，加解密算法，摘要算法，认证算法
			String keyAlgorithm, String cipherAlgorithm, String digestAlgorithm, String macAlgorithm,
			// 哈希长度，块长度，标记长度，密钥长度，向量长度
			int hash, int block, int tag, int key, int iv) {
		this.code = code;

		this.keyExchangeAlgorithm = keyExchangeAlgorithm;
		this.exportable = exportable;

		this.keyAlgorithm = keyAlgorithm;
		this.cipherAlgorithm = cipherAlgorithm;
		this.digestAlgorithm = digestAlgorithm;
		this.macAlgorithm = macAlgorithm;

		this.hash = hash;
		this.block = block;
		this.tag = tag;
		this.key = key;
		this.iv = iv;
	}

	public short code() {
		return code;
	}

	public boolean exportable() {
		return exportable;
	}

	/** 密钥交换算法 */
	public KeyExchange keyExchangeAlgorithm() {
		return keyExchangeAlgorithm;
	}

	/** 认证算法 */
	public String macAlgorithm() {
		return macAlgorithm;
	}

	/** 摘要算法 */
	public String digestAlgorithm() {
		return digestAlgorithm;
	}

	/** 加解密算法 */
	public String cipherAlgorithm() {
		return cipherAlgorithm;
	}

	/** 密钥算法 */
	public String keyAlgorithm() {
		return keyAlgorithm;
	}

	/**
	 * 标准流加密 Standard Stream Cipher<br>
	 * 无须初始化向量IV，任意大小块，须额外认证
	 */
	public boolean isStream() {
		return iv == 0 && block == 0 && tag == 0;
	}

	/**
	 * 分组加密 CBC(Cipher Block Chaining)<br>
	 * 需求初始化向量IV，固定大小块，须额外认证
	 */
	public boolean isBlock() {
		return iv > 0 && block > 0 && tag == 0;
	}

	/**
	 * 关联数据认证加密 AEAD(Authenticated Encryption with Associated Data)<br>
	 * 需求初始化向量IV，任意大小块，加密后带认证标签Tag
	 */
	public boolean isAEAD() {
		return iv > 0 && block == 0 && tag > 0;
	}

	/** 摘要算法和认证算法的结果长度(byte) */
	public int hash() {
		return hash;
	}

	/** 加解密流量块(byte) */
	public int block() {
		return block;
	}

	/** 加解密密钥(byte) */
	public int key() {
		return key;
	}

	/** 加解密标记(byte) */
	public int tag() {
		return tag;
	}

	/** 加解密向量(byte) */
	public int iv() {
		return iv;
	}
}